package com.efounder.frame.baseui;


/**
 * MVP模式中公共的基本契约
 *
 * @author zzj
 * @version 1.0.0
 */
public interface BaseContract {
    // 基本的界面职责
    interface BaseView<T extends BasePresenter> {
        // 公共的：显示一个字符串错误
        void showError(int errCode, String msg);

        //显示进度条
        void showLoading(String text);

        //取消进度条
        void dismissLoading();

        // 支持设置一个Presenter
        void setPresenter(T presenter);
    }

    // 基本的Presenter职责
    interface BasePresenter {
        void attachView();
        void detachView();
        boolean isViewAttached();

    }

//    // 基本的一个列表的View的职责
//    interface RecyclerView<T extends Presenter, ViewMode> extends BaseView<T> {
//        // 界面端只能刷新整个数据集合，不能精确到每一条数据更新
//        // void onDone(List<User> users);
//
//        // 拿到一个适配器，然后自己自主的进行刷新
//        RecyclerAdapter<ViewMode> getRecyclerAdapter();
//
//        // 当适配器数据更改了的时候触发
//        void onAdapterDataChanged();
//    }
}
